An anti-fuse is a one-time programmable component equivalent to an open circuit by default when manufactured, and equivalent to a conductor when programmed. Anti-fuses are used in a very large number of applications. They can be used, for example, to customize a component when it comes off the production line, such as for the non-erasable storage of information (for example, an identifier code) in the component. They can also be used to adjust a variable (the value of a resistor, a voltage produced, etc.) of a component after a test phase.
As compared with an EEPROM type storage cell, which is another type of classic storage circuit, anti-fuses are appreciated especially for their non-erasable character, their small size and the fact that they can be read immediately because they do not necessitate the use of high voltage for this purpose as shall be seen further below.
An anti-fuse can be made as a capacitor. In one example (FIG. 1), an anti-fuse 100 is made in the form of a P-type transistor. The P-type transistor is made in an N-type well 101 and comprises a drain 102 and a source 103. The gate 104 is insulated from the well 101 and from the drain 102 and source 103 by an insulating thin oxide (silicon oxide) layer 105. The well 101, the drain 102 and the source 103 are taken to the same potential. The source and drain 102, 103 and the gate 104 respectively form the two electrodes of a capacitor whose insulator is formed by the thin gate oxide 105.
The anti-fuse shown in FIG. 1 is not programmed. Between the gate 104 and the source 103 (or the drain 102) of the transistor forming the anti-fuse 100 the impedance is infinite when the transistor is off (i.e., not conducting). The anti-fuse 100 is equivalent to an open circuit.
One known method to program an anti-fuse of this kind is to use what is known as the “breakdown by accumulation,” that is, the gate oxide 105 is subjected to breakdown or disruption through the application of a high potential HT (about 10.5 V for an anti-fuse made with a gate oxide that is about 50 Angströms thick) on the gate 104 while applying at the same time a reference potential (0 V) to the drain 102, the source 103 and the well 101. Thus, electrons are gradually attracted and distributed beneath the gate oxide 105. As a consequence, the field beneath the gate oxide is gradually augmented homogeneously between the drain and the source of the anti-fuse until the breakdown or disruption of the gate oxide 105 at a zone 106 located between the source and the drain of the anti-fuse 100. The gate oxide 105 becomes locally conductive at the disrupted zone. Between the gate 104 and the source 103 of the transistor, the impedance then becomes finite. The anti-fuse is now programmed.
To read the anti-fuse 100, i.e., to determine whether it is programmed or not, the impedance between the gate 104 and the source 103 of the transistor is measured. The reading can be done by applying a voltage between the gate 104 and the source 103 of the transistor forming the anti-fuse 100 and by measuring the current flowing between the gate and the source. The reading can also be done by imposing a current between the gate 104 and the source 103 of the transistor 100 and by measuring the voltage between the gate and the source.
The known programming method has certain drawbacks because the impedance obtained after programming between the gate 104 and the source 103 of the transistor 100 forming the anti-fuse is highly variable, and is therefore, difficult to measure. The impedance of the programmed anti-fuse 100 is indeed highly non-linear (represented by a solid-line curve shown in FIG. 2). It varies non-negligibly with the voltage applied between the gate 104 and the source 103 of the anti-fuse transistor 100. Behavior of this kind for an impedance is typical of a P/N junction which characterizes the contact between the N-type well 101 and the P-type gate 104 at the position at which the insulating oxide 105 has been disrupted.
When the voltage VG between the gate 104 and the source 103 is low, such as between −1 and 1 V, the impedance is infinite (including when the anti-fuse 100 is programmed) and the impedance is not detectable. It is therefore necessary to have a minimal voltage of about 1 V to find out if the anti-fuse 100 is programmed or not. This entails a relative constraint, especially for circuits that are made by the more advanced technologies and use power supply voltages in the range of 1 V.
The impedance of the programmed anti-fuse 100 also varies greatly with the temperature of the component. The current or voltage to be detected between the gate 104 and the source 103 of the programmed anti-fuse 100 in order to measure the impedance varies with temperature. A read circuit capable of detecting temperature-variable currents or voltages of this kind is especially difficult to make.
Finally, the impedance of the programmed anti-fuse 100 varies greatly from one component to another in the same production line. It is still difficult to make read circuits that operate over a wide range of currents or voltages.